package cms.api;

import cms.model.Floor;
import cms.model.FloorContent;
import cms.model.FloorTemplate;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

/**
 * Created by Roney on 2016/10/13.
 */
public interface FloorApi {
    /**
     * 查询楼层信息
     * @param type
     * @param isDisable
     * @param isDelete
     * @return
     */
    public List<Floor> getList(Integer type, Boolean isDisable, Boolean isDelete);

    //保存楼层信息
    public Map saveFloor(Floor floor);

    //获取楼层信息并分页展示
    Page<Floor> getFloorListInfo(Pageable pageable);

    //获取楼层信息并分页展示
    Page<Floor> getFloorListInfo(String userId, String storeId, Pageable pageable);

    //获取ID为指定值值的楼层信息
    public Map getFloor(String id);

    //获取ID为指定值值的楼层信息
    public Floor getFloorInfo(String id);

    //删除ID为指定值的楼层信息
    public Map deleteFloor(String id);

    //获取所有楼层模拟的信息
    public List<FloorTemplate> getFloorTemplateInfo();

    //获取指定ID的楼层模拟的信息
    public FloorTemplate getFloorTemplateInfo(String id);

    public List<Floor> getList();

    //获得当前用户的楼层信息
    public List<Floor> getListByUserId(String userId);

    /**
     * 查询楼层
     * @param storeId 店铺id 针对店铺首页
     * @param type 区分店铺还是商城
     * @return
     */
    public List<Floor> findFloorList(Integer type,String storeId,String orgCode);

    /**
     * 查询楼层内容
     * @return
     */
    public Map<String,List<FloorContent>> findFloorContent(Integer type,String storeId,String orgCode);

    public String toString();

    /**
     * 根据楼层模板查询楼层List
     * @return
     */
    public List<Floor> getFloorsByFloorTemplate(FloorTemplate floorTemplate, boolean isDelete);
}
